iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
0
Software Development

挑戰用JavaScript刷LeetCode的Top Interview Questions系列 第 2

刷LeetCode-Top Interview Questions 陣列篇2

  • 分享至 

  • xImage
  •  

主題:Array

Rotate Array

題目的input有兩個,第一個是要旋轉的陣列,第二個是向右移動的距離,且不要以新增新的矩陣來操作原來的矩陣

思考邏輯:若是要移動n步的話,則是先在陣列開頭新增一個與尾端的值相同的element,然後將尾端element拿出來,共做n次

Ruby:

def rotate(nums, k)
  k.times do 
    nums.unshift(nums[-1])
    nums.pop
  end
end

JavaScript:

var rotate = function(nums, k) {
    for(let i=0; i < k; i++){
        nums.unshift(nums[nums.length-1])
        nums.pop()
    }
};

小結:

  • unshift是可以從陣列頭部新增element,與之相對的push則是在尾部新增element;而shift與pop則是分別從頭尾拿出element。
  • 在Ruby與JavaScript皆有unshift, shift, pop, push這些方法,在用法上略有不同。Ruby中在shift, pop後面可以接參數決定要拿掉幾個element,JavaScript則是固定拿出一個element
  • 蠻好奇這題大家都怎麼做的,或是有什麼更快的方法嗎,歡迎大家交流一下 : )

上一篇
刷LeetCode-Top Interview Questions 陣列篇1
下一篇
刷LeetCode-Top Interview Questions 陣列篇3
系列文
挑戰用JavaScript刷LeetCode的Top Interview Questions7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言